const express = require('express');
const moment = require('moment');
const session = require('express-session')
const app = express();
// 导入模板引擎
const artTemplate = require('art-template');
const express_template = require('express-art-template');


// 初始化session数据
app.use(session({
    name:  "SESSIONID",// session会话名称存储在cookie中的键名
    secret:'dajas123kp;,../?|`[].&(*-=@#$%$_)',
    //必填，用与session加密，防止被随意篡改
    cookie:{
        //设置session在cookie中的其他选项配置
        path:'/',
        secure:false,
        //默认为false, true 只针对于域名https协议
        maxAge:60000*24,
         //设置有效期为24分钟，说明：24分钟内，不访问就会过期，如果24分钟内访问了。则有效期重新初始化为24分钟。
    }
}))


//托管静态资源中间件
app.use('/uploads', express.static(__dirname + '/uploads'));
app.use('/static', express.static(__dirname + '/static'));
app.use('/layui-v2.6.8', express.static(__dirname + '/layui-v2.6.8'));

//挂载路由
const router = require('./router/router.js')
const frontend = require('./router/frontend.js')

app.use(express.json()) //
app.use(express.urlencoded({ extended: true }))//

// 配置模板引擎
app.set('views', __dirname + '/views/'); // 配置模板的路径
app.engine('html', express_template);  // 设置模板后缀为.html的文件(不设这句话，模板文件的后缀默认是.art)
app.set('view engine', 'html'); // 设置视图引擎为上面的html


// 定义过滤器（函数）
artTemplate.defaults.imports.dateFormat = function (time, format = 'YYYY-MM-DD HH:mm:ss') {
    return moment.utc(time).format(format);  // unix世界时间  utc北京时间  
}

artTemplate.defaults.imports.dealDate = function (date, format = 'YYYY-MM-DD HH:mm:ss') {
    return moment(date).format(format);  // unix世界时间  utc北京时间  
}

app.use(function(req,res,next){
    res.setHeader('Access-Control-Allow-Origin','*')
    next()
})
//前端路由
app.use('/api',frontend)

//允许跨域请求头
//3个参数

//登录权限
app.use((req,res,next)=>{
    let path = req.path.toLowerCase();//toLowerCase() 方法用于把字符串转换为小写。返回一个新的字符串
    let AllowPath = ['/login','/logout','/dologin','/ajaxlogin','/register','/ajaxemail','/ajaxregister','/ajaxdelete']
    if(!AllowPath.includes(path)){
        if(req.session.userInfo){
            next();
        }else{
            res.redirect('/login')//重定向
            return;
        }
    }else{
         // 放行的路由
        next()
    }
})



app.use(router)

app.listen(4790, () => {
    console.log('集齐七颗龙珠 召唤迪迦奥特曼')
})